草庐IT

javascript - 如何在javascript中查找内存泄漏

全部标签

ruby-on-rails - 如何分析我的 rspec 测试以找到最大的内存消耗?

我们使用circleci作为部署过程的一部分。Circleci运行了我们的3000次测试,有时会失败,因为它达到了4GB的内存限制。看起来我们的一些测试正在创建大量对象并耗尽大量内存。我只是不知道哪些是。有没有一种简单的方法可以分析给定测试所用的内存?如果我知道如何执行此操作,我可以轻松地遍历每个测试并运行它并查看它使用了多少内存。 最佳答案 您可以使用ruby-profgem来分析内存使用情况。但首先您可以尝试使用--profileflag运行rspec.它将为您提供10个最慢的规范,这可能是开始寻找消耗大量内存的规范的好地方。

ruby - 如何在不使用 Ruby 和 WMI 进行轮询的情况下检测 USB 插入?

我阅读了以下文章:UsingRuby&WMItoDetectaUSBDrive但是,此方法需要我在循环内保持轮询。是否可以注册并在插入/弹出USB时通知我的脚本?我正在寻找WindowsXP解决方案。 最佳答案 对于Ruby,我帮不了你太多,但WMI也支持受监视的事件。存在一个名为Win32_DeviceChangeEvent的外部事件.这是使用它的简单PowerShell代码:$query="SELECT*FROMWin32_DeviceChangeEventWHEREEventType=2"Register-WMIEvent-Q

ruby-on-rails - 如何在 Rails3 应用程序中的所有其他 Controller before_filters 之后在 gem 中附加 before_filter?

有一个gem,它附加一个before_filter到Rails应用:classRailtie这是应用程序中的一些Controller:classDesktopsController现在的问题是,来自gem的before_filter被放入来自DesktopsController的before_filter之前的过滤器链中:DesktopsController._process_action_callbacks.select{|c|c.kind==:before}.collect{|filter|filter.filter}=>[[0]:set_locale,[1]:set_langua

ruby - 如何在另一个 Sinatra 应用程序中安装 Sinatra 应用程序?

我正在尝试编写一个将组件组合在一起的Sinatra应用程序(有点像Controller)。所以对于“博客”相关的东西,我想要一个名为Blog的应用程序安装在/blog上。Blog应用程序中包含的所有路由都与它的挂载路径相关,因此我可以简单地定义一个index路由,而不必在路由中指定挂载路径。我最初是通过使用config.ru文件并将路由映射到不同的应用程序来处理这个问题的。我遇到的问题是,我使用了各种需要包含在所有应用程序中的sinatragem/扩展/助手,所以有很多重复代码。如何将一个sinatra应用程序安装到另一个应用程序中,以便应用程序中定义的路由与应用程序的安装位置相关?如

ruby popen3 -- 如何在不重新打开进程的情况下重复写入 stdin 和读取 stdout?

我正在使用Open3的popen3启动在类似控制台中运行的进程的方法/REPL重复接受输入并返回输出的方式。我可以打开流程、发送输入并接收输出,代码如下:Open3.popen3("console_REPL_process")do|stdin,stdout,stderr,wait_thr|stdin.puts"astringofinput"stdin.close_writestdout.each_line{|line|putsline}#successfullyprintsalltheoutputend我想连续多次这样做,而不是重新打开进程,因为启动需要很长时间。我知道我必须关闭std

ruby - 如何在 Ruby 中创建 IO 的自定义子类?

我如何创建自己的类来代替IO,例如为某些接受类似IO参数的代码重定向/捕获输入/输出?IO本身似乎耦合到OS文件描述符,我所知道的唯一一个模仿它而不对其进行子类化的类是StringIO,它似乎只是重新实现了整个接口(interface)。我认为该语言会提供一种直接的方法来执行此操作,但我找不到有关该主题的任何信息。是否有像Enumerable那样在一些基元之上实现接口(interface)的混合宏? 最佳答案 我怀疑我遗漏了什么,但假设情况并非如此......为什么子类化不是一种选择?你能不能只重写IO中需要表现不同的部分?clas

ruby-on-rails - 创建许多新对象时内存膨胀

当我运行它然后在OSX事件监视器中观察我的ruby​​进程的内存消耗时,内存以大约3MB/s的速度增加。如果我删除事务,内存消耗量将减半,但内存占用量仍会继续增加。我的生产应用程序有一个问题,Heroku由于内存消耗而终止了进程。有没有一种方法可以在不增加内存的情况下执行以下操作?如果我注释掉.save行,那没关系,但这当然不是解决方案。ActiveRecord::Base.transactiondo10000000.timesdo|time|puts"----#{time}----"a=Activity.new(:name=>"#{time}Activity")a.save!(:va

ruby - 如何在 FactoryGirl 工厂上定义方法?

如何定义一个正常的方法用于我的FactoryGirl工厂之一?例如:FactoryGirl.definedodefsilly_horse_nameverbs=%w[brunchesdribbleshagglesmeddles]nouns=%w[landmineshamletsvandalspiglets]"#{verbs.sample}with#{nouns.sample}".titleizeendfactory:racehorsedoname{silly_horse_name}#eg,"BruncheswithLandmines"after_builddo|horse,evaluat

ruby - 分配给 "lib/ruby/2.1.0/timeout.rb"的 1GB 内存

我在循环中使用Twitter、Mongo和Parallel来检索和存储数据。内存利用率达到1.5GB+GC怎么不清理这个?更新:Hereisthescriptinquestion.allocatedmemorybylocation-----------------------------------973409328/Users/jordan/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/timeout.rb:82359655091/Users/jordan/.rvm/gems/ruby-2.1.5/gems/json-1.8.3/lib/json/com

ruby - 如何在终端提示中显示 RVM 当前的 Ruby 和 gemset?

我正在使用rvm-prompt.似乎解释器、版本、补丁级别和gemset都应该默认显示。如果我调用提示,它会准确地返回当前的ruby​​和gemset:$rvm-promptruby-1.8.7-p302@rails125但是我的gemset没有反射(reflect)在我的提示中:ruby-1.8.7-p302MacBook:~subpixel$我尝试在.bash_profile中显式调用gemset:PS1="\$(~/.rvm/bin/rvm-promptivpg)$PS1"但它不会更改提示。 最佳答案 如果您查看rvm-pro